home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Video
/
World of Video.iso
/
gfxprograms
/
3dprograms
/
rayshade-4.0
/
amiga_readme
next >
Wrap
Text File
|
1995-02-13
|
8KB
|
160 lines
This is a full Amiga port of rayshade version 4.0.6.3, which, in turn,
is based on the sources of my previous Amiga port of rayshade, which
contained in one place most of the bug fixes and enhancements that had
been posted to the rayshade mailing list.
Here are a few of the features of this port:
* Utah RLE support.
* Several RLE utilities.
* CPP support.
* Raypaint. (In color!)
* -L switch to invoke the SAS/C preprocessor, if you have it. Slower than
GNU cpp, but can preprocess things like #include "huge_file", on which
cpp runs out of memory on the Amiga.
Older versions of the Amiga port included a memory allocation hack that
enabled rayshade to allocate up to twice the amount of memory than with
the standard memory allocator. This was based on the observation that
rayshade never freed the memory it allocated. As various additions to
rayshade have made this observation false, the hack has been removed.
The code for the hack has been left in libextra/stupidmalloc.c as a
historical curiosity.
INSTALLATION:
(All binaries are compiled for a 68020+68881. They should run on all
higher processors, but they will definitely crash if you only have a
68000/68010 or if you don't have an FPU.)
1. If you have gcc installed on your hard disk, just copy all the binaries,
except cpp, from the BIN directory to some place on your hard disk, and
you're all set. If you want to save images as IFF files from within the
getami previewer, copy LIBS/iff.library to the LIBS: directory. Make
sure that the cpp program from the gcc distribution is in your path.
2. If you don't have gcc, in addition to the above step, copy the cpp
program as well, and copy LIBS/ixemul.library to the LIBS: directory.
Make sure that the cpp program is in your path when you run rayshade or
raypaint.
WHAT'S INCLUDED:
* The entire rayshade source tree, with the rayshade, raypaint, and
rsconvert binaries, documentation, and example scene files.
* The source for the Utah Raster Toolkit library.
* Several utilities from the Utah Raster Toolkit to manipulate RLE bitmaps,
* A couple of format conversion programs from the Utah Raster Toolkit to
convert to and from RLE files.
* The getami RLE file previewer.
* The fbcat program from the FBM toolkit, that can convert between several
image formats, including RLE.
* Documentation for the supporting programs, in the MAN directory.
* Various surface and other parameter settings, collected from various
sources, in the RAYFILES directory. In it you will also find the RSdefs
package, with additional definitions for NTSC HAM mode.
RUNNING THE PROGRAMS:
Make sure ixemul.library is in the LIBS: directory.
Rayshade and raypaint require lots of stack. I would suggest starting
with 50,000 bytes, increasing the stack if you start getting crashes.
(Some scenes render fine with just 20,000 bytes of stack, while others
need more. I routinely use 250,000-500,000 bytes, to play it safe, so I
don't really know what the minimum safe value is. Yes, I know I'm
overdoing it!)
Rayshade works fine with VMM, a virtual memory management program, and I
assume it also works with other similar programs like GigaMem, so if you
run out of memory, fire up a virtual memory management program and keep
on raytracing!
Documentation for raypaint is in raypaint/README. Raypaint will render
in color, unless you specify the -M option, in which case it will render
in black and white. If you don't have a three button mouse, pressing
both buttons at the same time will do the same thing. If you're using a
program like DMouse that sends the current window/screen to the back
when both buttons are pressed, you can try to fool it by pressing the
right mouse button first.
If you're rendering into NTSC screens, keep in mind the 1:1.1 aspect
ratio of the pixels. For 320x200 or 320x400 screens, you can compensate
using the fov command, with a ratio of horizontal/vertical equal to
(320/200)/1.1=1.45454545, e.g "fov 65.45454545 45". For PAL screens the
pixels are nearly square, so you can use a ratio of 320/256=1.25, e.g.
"fov 56.25 45".
RECOMPILING:
1. Copy INCLUDE/*.h to your include directory. Iff.h is only required for
recompiling getami, so you can skip copying that, especially if you
happen to have a newer version that 23.2.
2. Go to the STDERRFIX directory. Edit the Makefile to your satisfaction,
and type make. Copy the resulting stderrfix.o and rle_stderrfix.o files
to the GNU:Lib directory. These two files fix a problem with gcc, which
does not create separate handles for stdout and stderr. For them to work
properly, you must compile your main program using -Dmain=mymain. (This
is done by the Makefiles, so you needn't worry.) Newer versions of gcc
come with stderrfix.o in the GNU:lib directory, but you will still need
to install rle_stderrfix.o.
3. Go to the URT/lib directory. Edit Makefile.amiga to your satisfaction,
and attempt to run make to build librle.a. This may fail, as I've only
managed to use the Makefile with SAS's smake. If you can't use make,
just do a straightforward compilation to produce the files mentioned in
the "makelib" file, then execute the "ar" command contained therein. I
apologize for the inconvenience.
4. Go to the top level directory. Edit libextras/Makefile,
libshade/Makefile, libray/lib*/Makefile, rayshade/Makefile,
raypaint/Makefile, and etc/rsconvert/Makefile. Copy config.h.amiga to
config.h, have a look at it to see if you want to change anything, then
type "make -f Makefile.amiga" and go for a cup of coffee. After a while,
you'll find the new binaries in rayshade/rayshade, raypaint/raypaint,
and etc/rsconvert/rsconvert.
In most cases I have provided Makefiles for SAS/C as well. I believe all
programs compile fine with that compiler. However, as I have not really
tested them (especially raypaint), I cannot guarantee that they actually
work. (My SAS Makefiles refer to my LIB:unix.lib library. This is
mainly for alloca, which is required by the bison parser. Grab a copy
from one of the numerous GNU utilities, or use malloc, instead.)
If you need to compile utilities from the Utah Raster Toolkit, you can
ftp the source from cs.utah.edu. The only modifications I've made are in
the library source (included in this archive). Once you've built the rle
library, the utilities should compile as is. If you use gcc, make sure
you compile with the '-Dmain=mymain' switch, and that you link with
GNU:lib/rle_stderrfix.o or GNU:lib/stderrfix.o, depending on whether
your program requires the rle library or not. If you use SAS/C, there is
no need for the stderrfix hack.
The directory URT/AMIGA_EXTRAS contains the source to a couple of
utilities that are not in the official URT distribution, so you might
want to add them to the URT sources, if you get them. (I believe that an
older version of getami is part of the latest URT distribution. Unless
you want a version of getami that runs under AmigaDOS 1.3, you can
safely throw it away, and use the newer version provided here.)
REPORTING PROBLEMS:
If you encounter any problems related to the port, as opposed to
problems with rayshade, let me know where I goofed, and I'll try to
help.
This archive was originally put together in an afternoon, after someone
suggested that I should release my rayshade port which was more complete
than the one that used to be available on aminet. All programs were
compiled from scratch using gcc 2.5.8 or 2.6.0 (rayshade, raypaint,
rsconvert), with options to produce code for a 68020 with a 68881
coprocessor. I have been using 68040 versions of these programs happily
for a couple of years, and 68020 versions for a couple of years before
that, so I believe that you should not have any problems in using them.
On the other hand, I cannot _guarantee_ that you won't encounter any
problems with these programs, so it is up to you to decide whether to
use them or not. In the event that running any of these programs causes
a hardware failure, loss of data, or other damage, I bear no
responsibility.
Kriton Kyrimis (UUCP: pythia!theseas!kriton!kyrimis)
(INTERNET: kyrimis@theseas.ntua.gr)